DB 정규화 :: DB에 대한 글들을 모았습니다.[SSISO Community]
 
SSISO 카페 SSISO Source SSISO 구직 SSISO 쇼핑몰 SSISO 맛집
추천검색어 : JUnit   Log4j   ajax   spring   struts   struts-config.xml   Synchronized   책정보   Ajax 마스터하기   우측부분

DB에 대한 글들을 모았습니다.
[1]
등록일:2009-04-18 22:29:03 (0%)
작성자:
제목:DB 정규화

1. 다음 용어들을 간략히 설명하라.

1.1. 반복 그룹 : 여러개의 값을 가질수 있는 엔티티, 복합 애트리뷰트(composite attribute)

다치 애트리뷰트(multivalue attribute), 중첩 릴레이션(nested relation)

1.2. 결정자 : 어떤 애트리뷰트의 값이 다른 애트리뷰트의 값을 고유하게 결정 하는 것

1.3. 함수적 종속성 : A 애트리뷰트가 B의 결정자이면 B가 A에 함수적 종속성 한다라고 한다

1.4. 완전 함수적 종속성 : 주어진 릴레이션 R에서 애트리뷰트 B가 애트리뷰트 A에 함수적으로 종속하면서 애트리뷰트 A의 어떤 진부분 집합에도 함수적으로 종속하지 않을 때 애트리뷰트 B가 애트리뷰트 A에 완전 함수적 종속성이라고 한다

1.5. 이행적 종속성 : 애트리뷰트(A → B → C)

1.6. 제1정규형 : 릴레이션의 애트리뷰트값이 원자값만을 갖는 것

1.7. 제2정규형 : 릴레이션이 제 1정규형을 만족하며 어떤 후보키에도 속하지 않는 모든 애트리뷰트들이 릴레이션의 기본키에 완전하게 함수적으로 종속하는 것이다

1.8. 제3정규형 : 제 2정규형까지의 조건을 만족하며 키가 아닌 모든 애트리뷰트가 릴레이션 R의 기본키에 이행적으로 종속하지 않는 것이다.

1.9. BCNF : 제 3정규형까지의 조건을 만족하며 모든 결정자가 후보키이어야 한다

1.10. 역정규화 : 현재의 정규형 단계보다 낮은 단계로 돌아 가는 것

2. 아래의 릴레이션 R을 보고 올바른 문장을 고르라. 2.3

2.1. 이 릴레이션은 제2정규형을 만족시키지 않는다.

2.2. 이 릴레이션은 제2정규형을 만족시킨다.

2.3. 중요한 정보가 미흡하므로 특정한 답을 고르는 것이 불가능하다.

R

K1

K2

I1

I2

I3

1

1

1

x

z

1

2

b

y

w

2

1

c

x

z

3. 한 릴레이션을 아래와 같은 정규형을 만족하도록 정규화하였을 때 삽입 이상을 막을 수 있는가?

3.1. 제1정규형 : 없다

3.2. 제2정규형 : 부분 함수적 종속성이 없어지므로 막을수 있다.

3.3. 제3정규형 : 제 2정규형의 까지의 조건을 모두 만족 해야 하므로 가능 하다

3.4. BCNF : 제 3정규형의 까지의 조건을 모두 만족 해야 하므로 가능 하다

3.5. (a)부터 (d)까지 모두

4. 정규화의 목적을 설명하라.

4.1. 5장에서 생성한 관계 데이터베이스 스키마를 기반으로 릴레이션의 수학적인 이론을 적용하여 보다 좋은 관계 데이터베이스 스키마 설계(여러 가지 갱신이상을 막으며 실세계를 훌륭하게 나태나고 애트리뷰트들의 관계가 잘 표현되는 것을 보장하며, 어떤 무결성 제약조건의 시행을 간단하게 하며, 아울러 효율성 측면도 고려하는것)로 이끄는 상향식 방법이다

5. 다음 릴레이션 R을 보고 물음에 답하라. 이 릴레이션에는 네 개의 에트리뷰트 A, B, C, D가 있고, 두 개의 함수적 종속성 (A, B) → C, B → D가 존재한다. (A, B)가 유일한 후보키이다.

R

A

B

C

D

a1

b1

c1

d1

a3

b3

c3

d3

a4

b4

c4

d4

5.1. 함수적 종속성(A, B) → D가 완전 함수적 종속성인가 또는 부분 함수적 종속성인가 또는 이행적 종속성인가? 그 이유를 간단하게 설명이라.

완전 함수적 종속성 이다 , D가 A,B 두 개의 애트리뷰트에 함수 종속성을 가지므로

5.2. 이 릴레이션이 만족하는 가장 높은 수준의 정규형이 무엇인가? 제 1정규형

5.3. 릴레이션 R을 두 개의 릴레이션 R1(A, B, C)와 R2(A, B, D)로 분해하였다. R1과 R2는 제3정규형을 만족하는가? 제 2정규형도 만족 하지 못한다

B → D이므로 부분함수적 종적성을 갖는다 즉 기본키 일부분에만 함수적 종적성을 갖는다

6. 아래와 같은 부동산 릴레이션에 대해서 물음에 답하라. 이 릴레이션에 존재하는 함수적 종속성들은 다음과 같다.

부동산(필자번호, 주소, 공시지가, 소유자이름, 주민등록번호, 전화번호)

함수적 종속성

필자번호 → 주소, 공시지가

소유자이름 → 전화번호

전화번호 → 소유자이름

주민등록번호 → 소유자이름

6.1. 이 릴레이션이 BCNF를 만족하지 못하는 이유를 설명하라.

기본키를 제외한 인스턴스가 기본키에 완전함수적 종석성을 하지 못하므로

제 2정규형화에서부터 거쳐야 한다

6.2. 이 릴레이션에서 발생할 수 있는 갱신 이상의 예를 두 가지 보여라.

수정이상 : 필자번호에 두명의 소유자가(전화번호, 주민번호) 발생할수도 있다 한명의 소유자의 전화번호가 바끼면 모든 그 소유자의 전화번호를 모두 바꿔야 한다

삭제이상 : 필자번호에 한명의 소유자가 있는데 이 소유자가 제거 되면 모든 튜플이 제거 되게 된다(실세계에서 필자번호는 있어야 한다)

6.3. 이 릴레이션을 BCNF로 정규화하라. 정규화 결과로 생긴 릴레이션이 BCNF를 만족함을 설명하라.

원자 값을 가지므로 제 1정규화를 만족한다

제 2정규화 각 릴리에션의 기본키를 제외한 애트리뷰트가 기본키에 모두 완전하게 함수적으로 종속한다(릴레이션 분해)

부동산(필자번호, 주소, 공시지가, 주민등록번호)

부동산소유자(주민등록번호, 소유자이름, 전화번호)

제 3정규화 키가 아닌 모든 애트리뷰트가 릴레이션의 의 기본키에 이행적으로 종속 하지 않는 것이다(만족)

BCNF정규화 모든 결정자가 후보키어야 한다(만족)

6.4. BCNF로 정규화된 릴레이션이 어떻게 (2)의 갱신 이상을 해결하는지 설명하라.

부분 함수적 종속성을 기준으로 릴레이션 분해를 하였으므로 가능 하다

7. 창고 릴레이션에 재고 정보를 유지한다. 하나의 창고마다 고유한 사원번호와 이름을 가 진 관리자가 있다. 각 창고는 창고이름(고유함)과 주소로 식별한다. 창고에 보관되는 각부품마다 부품번호(고유함), 재고날짜, 재고량, 공급자이름(고유함), 배송번호, 배송날짜, 배송수량이 있다. 한 번의 배송에서 여러 부품들을 배송 할 수 있다. 창고 릴레이션의 스키마는 아래와 같다.

창고(관리자번호, 관리자이름, 창고이름, 창고주소, 부품번호, 재고날짜, 재고량, 공급자 이름, 배송번호, 배송날짜, 배송수량)

7.1. 이 릴레이션의 기본 키를 식별하라. 부품번호

7.2. 이 릴레이션에서 발생할 수 있는 갱신 이상을 설명하라.

부분 함수적 종족성을 가지고 있으므로 삽입 삭제 수정 갱신 이상이 생길수 있다

7.3. 이행적 종속성을 포함하여 모든 함수적 종속성들을 열거하라.

7.4. 이 릴레이션이 어떤 정규형을 만족하는가? 제 1정규화만을 만족한다(원자값)

7.5. 이 릴레이션이 제2정규형이 아니라면 제2정규형으로 정규화하라.

관리자(관리자번호, 관리자 이름)

창고(창고이름, 창고주소)

부품(부품번호, 재고날짜, 재고량)

배송번호(배송번호, 공급자 이름, 배송날짜, 배송수량)

7.6. 이 릴레이션이나 (5)에서 생성된 릴레이션이 제3정규형이 아니라면 제3정규형으로 정규화하라.

관리자(관리자번호, 관리자 이름)

창고(창고이름, 창고주소)

부품(부품번호, 재고날짜, 재고량)

배송번호(배송번호, 공급자 이름, 배송날짜, 배송수량)

8. 세 개의 애트리뷰트 A, B, C와 네 개의 투플을 가진 릴레이션 R을 보고 아래의 함수적 종속성들이 성립하는지 또는 성립하지 않는지 답하라. 그 이유도 설명하라.

R

A

B

C

2

3

8

5

9

6

7

9

6

5

2

1

8.1. A → B : 성립(X), 각 A의 값에 B값이 두 개 이다

8.2. B → C : 성립(O), 각 B의 값에 C값이 모두 하나이다

8.3. (B, C) → A : 성립(X), 각 값에 A값이 하나가 아니다

8.4. (A, B) → C : 성립(X), 각 값에 C값이 하나가 아니다

9. 사원과 프로젝트에 관한 에트리뷰트들에 대해서 아래와 같은 함수적 종속성들이 존재한다. 각 사원이 여러 프로젝트에 참여할 수 있고, 각 츠로젝트에서 여러 사원이 일할 수 있다고 가정하자.

주민등록번호 → 사원번호

프로젝트번호 → 프로젝트이름

사원번호 → 주민등록번호

주민등록번호 → (사원이름, 나이)

프로젝트유형 → 분류

프로젝트번호 → 프로젝트유형

프로젝트번호 → 분류

(주민등록번호, 프로젝트번호) → 프로젝트시작날짜

사원번호 → (사원이름, 나이)

(사원번호, 프로젝트번호) → 프로젝트시작날짜

9.1. 위의 함수적 중속성들을 모두 나타내는 BCNF 릴레이션들의 집합을 구하라.

사원(사원번호, 주민등록번호)

사원정보(사원번호, 사원이름, 나이)

프로젝트(프로젝트번호, 프로젝트유형)

프로젝트분류(프로젝트번호, 분류)

9.2. 만일 제3정규형까지 릴레이션들을 정규화하려 한다면 어떤 릴레이션들의 집합이 구해지는가? 이들 중에서 어느 릴레이션이 BCNF를 만족하지 못하는가?

9.3. 만일 제2정규형까지 릴레이션들을 정규화하려 한다면 어떤 릴레이션들의 집합이 구해지는가? 이들 중에서 어느 릴레이션이 제3정규형을 만족하지 못하는가?

10. 학교에서 체육과목을 수강할 때 활동에 따라 수강료에 차이가 있다. 아래와 같은 릴레이션이 몇 정규화를 만족하는가? 그 이유를 설명하라. 또한 이 릴레이션에 존재하는 삽입 이상, 삭제 이상, 수정 이상의 예를 보여라

수강료

학번

활동

수강료

101

골프

30000

101

수영

20000

157

스키

40000

185

스쿼시

10000

185

스키

40000

300

스키

40000

300

수영

20000

제 2정규형을 만족한다(이행적 종속성을 가지며 기본키가 한 개 이기 때문이다)

삽입이상 : 활동에 축구를 삽입 하더라도 학번이 없으면 삽입이 불가능 하다 학번은 널값이 들어 갈수 없다

삭제이상 : 학번 185을 삭제 하면 스쿼시 정보도 같이 삭제 된다

수정이상 : 스키의 수강료를 바꾸면 각 수겅하는 학번 모두의 수강료를 변경 해야지 않으면 정보의 불일치가 생긴다

11. 아래의 릴레이션에 존재하는 모든 함수적 종속성들을 열거하라.

수강료

A

B

C

D

a1

b4

c1

d6

a1

b2

c4

d5

a2

b4

c1

d4

a2

b2

c4

d3

a2

b3

c2

d2

B → C

12. 아래와 같은 릴레이션 R을 보고 물음에 답하라.

R(A, B, C, D, E)

기본키 : (A, D)

함수적 종속성 : (A, D) → E, A → B, B → C

12.1. R이 만족하는 가장 높은 정규형은 무엇인가? 제 1정규형을 만족한다

12.2. 릴레이션 R을 아래와 같이 두 릴레이션 R1과 R2로 분해하였을 때 R1과 R2가 만족하는 가장 높은 정규형은 무엇인가? 제 2정규형을 만족 한다

R1(A, B, C)R2(A, D, E)

함수적 종속성 : A → B, B → C 함수적 종속성 : (A, D) → E

13. 아래의 학생 릴레이션을 제 3정규형을 만족하도록 분해하라

학생(학번, 학생이름, 학과번호, 학과이름, 과목번호, 과목이름, 성적)

함수적 종속성

학번 → 학생이름, 학과이름, 학과번호

학과번호 → 학과이름

과목번호 → 과목이름

(학번, 과목번호) → 성적

릴레이션 분해

학생(학번, 학생이름)

학과(학과번호, 학과이름)

과목(과목번호, 과목이름)

성적(학번, 과목번호, 성적)

14. 그림 7. 20의 릴레이션에 존재하는 함수적 종속성의 다이어그램을 그려라.

(학번, 과목) → 강사

15. 아래의 릴레이션을 보고 물음에 답하라

의류

항목

색깔

가격

세금

스웨터

파랑, 노랑

50000

5000

티셔츠

빨강, 파랑

20000

2000

수영복

빨강, 연두

40000

4000

티셔츠

파랑, 빨강

20000

2000

15.1. 이 릴레이션이 만족하는 가장 높은 정규형은 무엇인가?

15.2. 이 릴레이션을 제 3정규형으로 정규화하라. 각 단계마다 릴레이션이 주어진 정규형을 만족하거나 만족하지 않는 이유도 함께 설명하라.

15.3. 제 3정규형으로 생성된 릴레이션들을 생성하는 SQL의 CREATE TABLE문을 작성하라.

16. 아래의 릴레이션 PROJECT를 릴레이션 P1(PNO, PNAME)과 P2(PNO, PLOC)로 분해했을 때, 릴레이션 P1과 P2를 애트리뷰트 PNO를 사용하여 조인하면 어떤 가짜 투플들이 생기는가?

PROJECT

PNO

PNAME

PLOC

123

Marketing

Seoul

123

Account

Busan

125

Wed Design

Daejeon

가짜투플

PROJECT

PNO

PNAME

PLOC

123

Marketing

Seoul

123

Account

Busan

가짜투플 →

123

Marketing

Busan

123

Account

Seoul

125

Wed Design

Daejeon

17. 릴레이션 R(A, B, C, D)에 아래와 같은 함수적 종속성이 존재한다.

(A, B) → D

D → C

이 릴레이션이 만족하는 최대 정규형은 무엇인가? 제 1정규형만을 만족 한다

더 높은 정규형을 만족하도록 이 릴레이션을 분해하라.

R(A, D), R1(B, C) ← 릴레이션 분해

18. 릴레이션 R(A, B, C, D, E)의 후보키는(A, B)와 (A, C)이다. 또한 아래와 같은 함수적 종속성이 존재한다.

B → C

C → B

이 릴레이션이 만족하는 최대 정규형은 무엇인가? 제 1정규형

더 높은 정규형을 만족하도록 이 릴레이션을 분해하라.

R(A, D), R1(B, C, E) ← 릴레이션 분해

19. 한국서점의 데이터베이스에 아래와 같은 릴레이션이 저장되어 있다. 이 릴레이션을 정규화 하라.

출판사ID

출판사이름

주소

책ID

책주제

출판일

1234

생능출판사

파주시

B101

데이터베이스

2006-3-2

B202

자료구조

2005-7-30

B388

운영체제

2005-12-31

B567

경영정보

2006-3-1

9876

대한출판사

서울시

B743

반도체

2005-11-30

20. 데이터베이스를 설계할 때 어떻게 정규화 과정이 ER모델링 과정을 보완하는가를 설명하라.

릴레이션에 수학적인 이론을 적용하여 보완한다

21. 다음 릴레이션이 만족하는 가장 높은 정규형은 무엇인가? 제 2정규형

Delivery(Itemno, CustomerId, Quantity, CustomerTelno)

(Itemno, CustomerId) → Quantity, CustomerTelno

CustomerId → CustomerTelno

22. 어떤 데이터베이스 응용 프로그램이 완전하게 정규화되지 않은 릴레이션들을 기반으로 구현되었다고 가정하자. 이런 구현의 장점과 단점을 설명하라.

장점 : 릴레이션의 수가 적다, 정규화로 인한 성능 저하가 없다

단점 : 갱신이상을 가져올수 있다

23. 아래의 각 릴레이션을 보고 물음에 답하라.( )는 다치 애트리뷰트를 의미한다. 릴레이션이 몇 정규형을 만족하는가? 만일 릴레이션이 BCNF를 만족하지 않는다면 높은 단계로 정규화하라.

23.1. R(A, B, (C))

A → B

A → (C)

다치 애트리뷰트가 존재 하므로 비정규화된 릴레이션이므로 정규화 할수 없다

반복그룹을 제거 하면 높은 단계로 정규화가 가능 하다

23.2. R(A, B, C, D)

(A, B) → C

A → D

제 BCNF까지 만족한다 더 높은 단계로 정규화 될 수 없다

23.3. R(A, B, C, D, E)

(A, B) → C, E

C → D

제 1정규화를 만족 한다

R(A, B, E), R1(C, D) 하면 높은 단계로 정규화가 가능 하다

24. 아래의 릴레이션은 학생들이 졸업하기 전에 수행해야 하는 프로젝트에 관한 정보를 저장한다. 이 릴레이션에서 애트리뷰트 student가 유일한 후보 키이다.

각 프로젝트마다 고유한 프로토타입이 있다.

sudent

project

prototype

result

이 릴레이션을 다음과 같이 두가지 방식으로 분해하였을 때 어느 방식이 다른 방식보다 더 좋은가? 그 이유를 설명하라.

sudent

project

result

sudent

project

result

sudent

prototype

project

prototype

( a ) ( b )

(b)가 더 좋은 분해 이다, 프로토타입은 학생이 어떤 프로젝트 타입을 하냐 보다 프로젝트가 어떤 타입인지를 더 알기를 원할 것이단

25. 아래의 릴레이션 CAR)CALE은 판매원이 자동차를 고객에게 판매하고 받는 수당 등을 나타낸다. 한 자동차를 여러 판매원이 함께 판매할 수 있다고 가정한다. 따라서 이 릴레이션의 기본키는(Car_no, Salesman)no)이다. 또한 이 릴레이션에는 Date_sold → Discount_amt, Salesman_no → Commission 함수적 종속성이 존재한다.

CAR_SALE(Car_no, Date_sold, Salesman_no, Commission, Discount_amt)

25.1. 이 릴레이션이 만족하는 가장 높은 정규형은 무엇인가? 이 릴레이션을 최대한 높은 정규형으로 단계적으로 정규화하라.

제 1정규화만을 만족한다, 부분 함수적 종족성 존재, 이를 제거 하면 높은 단계로 정규화가 가능 하다 CAR_SALE(Car_no, Salesman_no, Commission), Date_sold(Date_soldDiscount_amt)

26. 다음 릴레이션이 만족하는 가장 높은 정규형은 무엇인가? 이 릴레이션에는 주문에 대한 정보가 저장된다. 각 주문에는 최대한 두 개의 항목이 포함될 수 있다.

PO#

PO#

SUPPLIER

item1

QTY1

PRICE1

item2

QTY2

PRICE2

123

2006/3/2

김창근

RAM

10

50000

모니터

20

200000

124

2006/3/3

이홍근

CPU

5

500000

125

2006/3/4

김창섭

RAM

30

50000

모니터

5

200000

이 릴레이션을 최대한 높은 정규형으로 단계적으로 정규화 하라.

[본문링크] DB 정규화
[1]
코멘트(이글의 트랙백 주소:/cafe/tb_receive.php?no=31467
작성자
비밀번호

 

SSISOCommunity

[이전]

Copyright byCopyright ⓒ2005, SSISO Community All Rights Reserved.